package org.jeeasy.system.modules.test.domain.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeeasy.common.core.annotation.convert.BeanTransfer;
import org.jeeasy.common.core.annotation.dict.Dict;
import org.jeeasy.common.core.base.convert.BaseConverter;
import org.jeeasy.common.core.base.convert.BaseTransfer;
import org.jeeasy.system.modules.test.domain.SysTest;
import org.mapstruct.Mapper;

import java.io.Serial;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * 测试单表
 * 测试单表
 *
 * @author wei.yang
 * @date 2025-01-23 20:57:22
 */
@Data
@Schema(description = "测试单表VO")
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@BeanTransfer(value = SysTestVO.Converter.class)
public class SysTestVO extends BaseTransfer<SysTest> {

    @Serial
    private static final long serialVersionUID = 1L;


    @Schema(description = "ID")
    private String id;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "创建人")
    private String createBy;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    @Schema(description = "更新人")
    private String updateBy;

    @Schema(description = "启用标记")
    @Dict("EnableFlag")
    private Integer enableFlag;

    @Schema(description = "日期测试")
    private LocalDate dateTest;

    @Schema(description = "版本")
    private Integer version;

    @Schema(description = "日期时间测试")
    private LocalDateTime dateTimeTest;

    @Schema(description = "时间测试")
    private LocalTime timeTest;

    @Schema(description = "数字测试")
    private Integer numberTest;

    @Schema(description = "所属部门")
    private String sysOrgCode;

    @Schema(description = "字典测试")
    @Dict("test_dict")
    private String dictTest;

    @Mapper
    public interface Converter extends BaseConverter<SysTest, SysTestVO> {

    }
}